Ext.form.CKEditor = function(config) {

	this.config = config;
	Ext.form.CKEditor.superclass.constructor.call(this, config);
};
Ext.form.CKEditor.CKEDITOR_CONFIG = context + "/app/cms/ckeditor/cmsconfig.js";
Ext.extend(Ext.form.CKEditor, Ext.form.TextArea, {
			onRender : function(ct, position) {
				if (!this.el) {
					this.defaultAutoCreate = {
						tag : "textarea",
						autocomplete : "off"
					};
				}
				Ext.form.TextArea.superclass.onRender.call(this, ct, position);
				var config = {
					customConfig : Ext.form.CKEditor.CKEDITOR_CONFIG
				};

				Ext.apply(config, this.config.CKConfig);
				var editor = CKEDITOR.replace(this.id, config);
				// CKFinder.setupCKEditor(editor, './ckfinder/');
			},
			onDestroy : function() {
				if (CKEDITOR.instances[this.id]) {
					delete CKEDITOR.instances[this.id];
				}
			},
			setValue : function(value) {
				Ext.form.TextArea.superclass.setValue.apply(this, [value]);
				CKEDITOR.instances[this.id].setData(value);
			},
			getValue : function() {
				CKEDITOR.instances[this.id].updateElement();
				var value = CKEDITOR.instances[this.id].getData();
				Ext.form.TextArea.superclass.setValue.apply(this, [value]);
				return Ext.form.TextArea.superclass.getValue.apply(this);
			},
			getRawValue : function() {
				CKEDITOR.instances[this.id].updateElement();
				return Ext.form.TextArea.superclass.getRawValue(this);
			},
			isDirty : function() {
				if (this.disabled) {
					return false;
				}
				var value = String(this.getValue()).replace(/\s/g, '');
				value = (value == "<br />" || value == "<br/>" ? "" : value);
				this.originalValue = this.originalValue || "";
				this.originalValue = this.originalValue.replace(/\s/g, '');
				return String(value) !== String(this.originalValue)
						? String(value) !== "<p>" + String(this.originalValue)
								+ "</p>"
						: false;
			}
		});
Ext.reg('ckeditor', Ext.form.CKEditor);

/**
 * 内容定义
 * 
 * @param {}
 *            querykey 通用查询key
 * @param {}
 *            cid 栏目id
 * @param {}
 *            cname 栏目名称
 * @param {}
 *            ctype 栏目类型
 */
function addcmsinfo(querykey, cid, cname, ctype) {
	var xmlhttp = sendRequestObject(context + '/app/cms/ckeditorpre.jsp');
	var uniqueid;
	if (xmlhttp.status == 200) {
		// get uniqueid
		uniqueid = trim(xmlhttp.responseText);
	} else if (xmlhttp.status == 404) {
		alert('内容发布准备页面(/app/cms/ckeditorpre.jsp)并不存在');
	} else if (xmlhttp.status == 500) {
		alert('内容发布准备页面(/app/cms/ckeditorpre.jsp)发生错误');
	}

	var wb = getWBComboStore('cmsInfoTemplate', '', 'D_TEMPLATEID_', '页面模板',
			'D_TEMPLATEID', 'D_TEMPLATENAME', '', false);
	wb.width = 400;

	var form = new Ext.FormPanel({
				id : 'infoForm',
				bodyStyle : 'padding:5px 5px 5px 5px;',
				labelWidth : 75,
				region : 'center',
				defaultType : 'textfield',
				plain : true,
				layout : 'form',
				labelAlign : 'left',
				items : [{
							fieldLabel : '标题',
							name : 'I_TITLE',
							allowBlank : false,
							width : 400
						}, {
							fieldLabel : '作者',
							name : 'I_AUTHOR',
							width : 400
						}, {
							fieldLabel : '内容来源',
							width : 400,
							name : 'I_FROM'
						}, {
							fieldLabel : '关键字',
							width : 400,
							name : 'I_KEYS'
						}, wb, {
							xtype : 'hidden',
							name : 'PK_ID'
						}, {
							xtype : 'hidden',
							name : 'D_TEMPLATEID',
							id : 'D_TEMPLATEID',
							value : ''
						}, {
							xtype : 'hidden',
							name : 'D_TEMPLATENAME',
							id : 'D_TEMPLATENAME',
							value : ''
						}, {
							xtype : 'hidden',
							name : 'D_ID',
							value : cid
						}, {
							xtype : 'hidden',
							name : 'D_TYPE',
							value : ctype
						}, {
							xtype : 'hidden',
							name : 'uniqueid',
							value : uniqueid
						}, new Ext.form.CKEditor({
									labelAlign : 'top',
									fieldLabel : '内容编辑',
									xtype : 'ckeditor',
									name : 'I_CONTENT',
									width : '100%',
									CKConfig : {
										height : 300,
										toolbar : 'Default'
									},
									value : ''
								})]
			});

	var win = new Ext.Window({
				renderTo : Ext.getBody(),
				layout : 'fit',
				width : 800,
				height : 650,
				title : cname,
				resizable : true,
				maximizable : true,
				plain : true,
				modal : true,

				items : [form],

				buttons : [{
					text : ' 提交 ',
					handler : function() {
						saveTable4Ext('cmsinfo', 'single', '-1', function() {
									return Ext.getCmp('infoForm').getForm()
											.isValid();
								}, function() {
									// reloadTQList(querykey);
									win.close();
								}, Ext.getCmp('infoForm'), '确定提交保存内容信息',
								'cmsinfo');
					}
				}, {
					text : ' 关闭 ',
					type : 'button',
					handler : function() {
						win.close();
					}
				}]
			});

	win.show(this);

}

function editcmsinfo(id, name) {
	initTable("APP_CMS_INFO", id, "single", function(o) {
		var wb = getWBComboStore('cmsInfoTemplate', '', 'D_TEMPLATEID_',
				'页面模板', 'D_TEMPLATEID', 'D_TEMPLATENAME', '', false);
		wb.width = 400;

		var form = new Ext.FormPanel({
					id : 'infoForm',
					bodyStyle : 'padding:5px 5px 5px 5px;',
					labelWidth : 75,
					region : 'center',
					defaultType : 'textfield',
					plain : true,
					layout : 'form',
					labelAlign : 'left',
					items : [{
								fieldLabel : '标题',
								name : 'I_TITLE',
								allowBlank : false,
								width : 400
							}, {
								fieldLabel : '作者',
								name : 'I_AUTHOR',
								width : 400
							}, {
								fieldLabel : '内容来源',
								width : 400,
								name : 'I_FROM'
							}, {
								fieldLabel : '关键字',
								width : 400,
								name : 'I_KEYS'
							}, wb, {
								xtype : 'hidden',
								name : 'PK_ID'
							}, {
								xtype : 'hidden',
								name : 'D_TEMPLATEID',
								id : 'D_TEMPLATEID',
								value : ''
							}, {
								xtype : 'hidden',
								name : 'D_TEMPLATENAME',
								id : 'D_TEMPLATENAME',
								value : ''
							}, {
								xtype : 'hidden',
								name : 'D_ID'
							}, {
								xtype : 'hidden',
								name : 'D_TYPE'
							}, new Ext.form.CKEditor({
										labelAlign : 'top',
										fieldLabel : '内容编辑',
										xtype : 'ckeditor',
										name : 'I_CONTENT',
										width : '100%',
										CKConfig : {
											height : 300,
											toolbar : 'Default'
										},
										value : ''
									})]
				});

		var win = new Ext.Window({
			renderTo : Ext.getBody(),
			layout : 'fit',
			width : 800,
			height : 650,
			title : name,
			resizable : true,
			maximizable : true,
			plain : true,
			modal : true,

			items : [form],

			buttons : [{
				text : ' 提交 ',
				handler : function() {
					updateTable4Ext('cmsinfo', 'single', '-1', function() {
								return Ext.getCmp('infoForm').getForm()
										.isValid();
							}, function() {
								win.close();
							}, Ext.getCmp('infoForm'), '确定更新内容信息', 'cmsinfo');
				}
			}, {
				text : ' 关闭 ',
				type : 'button',
				handler : function() {
					win.close();
				}
			}]
		});

		win.show(this);

		form.getForm().load({
					url : context + '/system/result4form.jsp',
					params : {
						PK_ID : id,
						I_TITLE : o.data.I_TITLE,
						I_AUTHOR : o.data.I_AUTHOR,
						I_FROM : o.data.I_FROM,
						I_KEYS : o.data.I_KEYS,
						D_ID : o.data.D_ID,
						D_TYPE : o.data.D_TYPE,
						D_TEMPLATENAME : o.data.D_TEMPLATENAME,
						D_TEMPLATEID : o.data.D_TEMPLATEID,
						D_TEMPLATEID_ : o.data.D_TEMPLATENAME,
						I_CONTENT : o.data.I_CONTENT
					},
					success : function(form, action) {

					},
					failure : function(form, action) {
						Ext.Msg.alert('初始化内容信息失败');
					}
				});

	});
}

// 加载已成功上传的图片
function loadUploadImage(json) {
	if (json.success) {
		Ext.getCmp('infoForm').getForm().findField("uniqueid")
				.setValue(json.uniqueid);
		CKEDITOR.dialog.getCurrent().getContentElement('info', 'txtUrl')
				.setValue(json.url);
		CKEDITOR.dialog.getCurrent().selectPage('info');

	} else {
		alert("上传图片失败");
	}
}